home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d12
/
c_wndw.arc
/
C_WNDW.H
< prev
next >
Wrap
Text File
|
1990-01-28
|
9KB
|
240 lines
/* header file for windowing system
*
* Copr. (c) Marietta Systems, Inc. 1987-88
* All rights reserved
*
* Global variables for the windowing system.
*
* Do not change these!
*
*/
#ifndef LATTICE
typedef unsigned char byte;
#define _STACK _stklen
#define fileclose fileclos
#define filewrite filewrit
#endif
/*
*/
long _SIZMEM = 0;
int SAVEWAIT = 900, A_TRACK = -1;
unsigned SCRN_PTR, CLR_PTR = 0X0000, _DSEG, _DOFF, CLR_SEG = 0XB800,
MONO_SEG = 0XB000;
short SCR_SIZE, OLD_CODE, _brkflag;
byte INCHAR = 32, INCHAR_F = 0, _D_ERROR = 0, _D_MSG = 0, FN_DEBUG = 0;
byte INS_FLAG = 1, CLR_INIT = 0, W_NUM = 0, BUG_TEST = 0, MEM_TEST = 0;
byte COLOR_SC = 0, EGA_SCRN = 0, CLR_CODE = 0 , *MEM_LINE, CLR_TONE = 1;
enum fld_type {alphanum, graphic, flag, boolean, calendar, numeric, value,
real, chrono};
enum COLOR_OF {black,blue,green,cyan,red,magenta,yellow,white};
enum _JUST {left,right,as_typed,center,code,decimal,c_number,date,time};
enum ATTRIB {low,high,reverse,blink,blank,alt_low,alt_high,alt_reverse}
OLD_BRIG = low;
enum F_READ {firstrec, previous, nextrec, lastrec, random, relative};
enum F_MODE {append, readonly, recreate, update};
enum F_TYPE {ascii, binary, dbase3, hashed, marietta};
struct CURSR {byte X,Y;} _CURSOR; /* Current cursor position in window */
struct WINDW { /* window tracking struct */
byte X, Y, H, W, P, *SCREEN, *FUNCTION;
int CODE;
} *WINDOW;
struct CLR_TYPE {
enum COLOR_OF FORE, BACK;
int ALT_CLR;
};
struct DBF_DEF{ /* dBase III Plus data dictionary struct */
byte dbf_name[11], dbf_type, dbf_len, dbf_dec, dbf_set, dbf_dig;
byte dbf_fill[16];
};
struct F_DEF { /* file definition control struct */
long prime, location, r_count;
int key_len, offset, start, rec_len, fbloc;
enum F_TYPE ftype;
byte keycode, *fptr, *record, write;
char fname[13];
char *fnext; /* pointer to data dictionary */
} FN[20];
/*
* Configuration constants
*
* Change their initial value to suit your set-up
* - but be careful!!
*
*/
struct CLR_TYPE COLOR [7] = { /* number of elements must match
"_COLOR" config constant */
{green, black, 6}, /* base window color, #0 */
{white, blue, 3}, /* color #1 */
{cyan, black, 4}, /* color #2 */
{cyan, red, 5}, /* color #3 */
{white, magenta, 2}, /* color #4 */
{yellow, black, 1}, /* color #5 */
{white, red, 0}, /* color #6 */
};
struct CLR_TYPE TOP_CLR = {yellow,magenta,6}; /* top line color */
struct CLR_TYPE ER_COLOR = {green,red,6}; /* bottom line color */
/* */
enum ATTRIB ACC_DISP = reverse; /* Attribute of accept fields after entry */
byte ERR_BEEP = 2; /* For beep length with 'disp_err', 0 = tiny beep */
byte UP_NAME = 0; /* 1 if names are to be in uppercase only */
byte FLD_FULL = 1; /* 1 for auto ENTER on full field; 0 = ENTER required */
byte TAB_SET = 4; /* size of tab increments on screen for '\t' code */
byte _WINDW = 10; /* maximum number of windows */
byte _COLOR = 7; /* maximum number of different color selections */
byte SCRN_LEN = 25; /* screen length in lines */
byte SCRN_WID = 80; /* screen width in columns */
byte TOP_LINE = 1; /* lines dedicated to the "top-frame" at top of screen */
byte MAXFILES = 20; /* maximum number of files for operating system */
byte D_FORMAT = 'U'; /* U for USA format, E for european, I for intl */
byte D_PUNCT = '/'; /* punctuation character for date formats */
byte D_20XX = 10; /* split between 20xx and 19xx in years */
byte PERIOD = '.'; /* decimal point character */
byte COMMA = ','; /* thousands seperator */
byte BOOL_YES = 'Y'; /* The TRUE or YES boolean entry code */
byte BOOL_NO = 'N'; /* The FALSE or NO boolean entry code */
char *xgoodbye;
unsigned KEYMATCH[8] /* the key match array which determines which
function keys are treated as 'end-of-field'
keys by the 'isendch' function */
= {0X428, 0X584, 0X0, 0X0, 0X0, 0X0, 0X0, 0X0};
/* this activates all basic cursor related function keys :
Pgup, Up, Pgup, Home, Down, End, Ctrl+Enter
*/
int DISCBLCK = 512; /* maximum record size of any file to be opened,
Minimum size is 65, but recommended minimum is 256. */
short MEM_WARN = 4096; /* Warning will be issued when unused heap memory is
under this. Maximum is 9999, minimum is 2048 */
long MAX_WIND = 15000L; /* maximum amount of heap space for windowing
functions. The minimum size of MAX_WIND should be 8500.
To calculate, use the formula :-
((number of windows * average size * 2) + 2500)
where 'average size' is (height * width)
*/
long _MNEED = 20000L; /* minimum heap space to be allocated, which must be
at least MAX_WIND + 5000. */
unsigned _STACK = 10000; /* size of stack, (at least 5000) */
/*
*
* This section contains the #define codes
*
*/
#define CTL_A 1 /* all the other CTL combinations can be defined here */
#define PGDN 3
#define CRS_RT 4 /* Right cursor */
#define CRS_UP 5 /* Up cursor */
#define DEL 7
#define B_SPACE 8
#define TAB 9
#define CTL_ENT 10
#define SFT_TAB 11
#define ENTER 13
#define PGUP 18
#define CRS_LT 19 /* Left cursor */
#define CTL_BSPC 20 /* Ctrl + backspace */
#define INS 22
#define HOME 23
#define CRS_DN 24 /* Down cursor */
#define END 26
#define CTL_Z 26 /* 0X1A */
#define ESC 27
#define ALT_Q 129 /* The other ALT alpha keys can be defined here */
#define ALT_P 138 /* Print translated screen */
#define QUIT_NOW 158 /* Alt+X used for fast terminate of program */
#define ALT_M 163
#define HELP 168 /* F1 Key */
#define UNDO 169 /* F2 Key */
#define SEARCH 170 /* F3 Key */
#define MOVE 171 /* F4 Key */
#define INSERT 172 /* F5 Key */
#define DELETE 173 /* F6 Key */
#define ZOOM 174 /* F7 Key */
#define AMEND 175 /* F8 Key */
#define KEY_CH 176 /* F9 Key */
#define QUIT 177 /* F10 Key */
/* 174 thru 218 reserved for standard graphics characters */
#define SFT_F1 220 /* The other SHIFT+Fnn keys can be defined here */
#define SFT_F10 229
#define CTL_LT 248 /* Ctrl + left cursor */
#define CTL_RT 249 /* Ctrl + right cursor */
#define CTL_END 250
#define CTL_PGDN 251
#define CTL_HOME 252
#define CTL_PGUP 254
/* */
#define DELETED 0X2A /* '*' code has dBase 3+ compatibility */
#define IN_USE 0X20 /* ' ' code has dBase 3+ compatibility */
#define EMPTY 0X26 /* '&' code, for hashed files */
#define SYS_REC 0X03 /* code has dBase 3+ compatibility */
/* */
#define MFALSE 128
#define MTRUE 129
/*
*
* The external functions used by windowing software
*
*/
extern int accept(byte*,enum _JUST,enum ATTRIB,int,int);
extern void box_scrn(void);
extern void check_f(void);
extern void clr_scrn(char*);
extern void clr_wndw(void);
extern byte* concat(byte*,int);
extern int datecomp(char*,char*);
extern long datelong(char*);
extern void datemath(char*,int);
extern void dateread(char*);
extern void date_in(char*,char*);
extern void date_out(char*,char*);
extern int dbf_fld(int);
extern void display(byte*,int,int,enum ATTRIB);
extern void disp_err(char*,int);
extern void disp_msg(char*,int);
extern byte disp_qry(char*);
extern int fileback(char*);
extern int fileclos(int);
extern int filedbf(int,struct DBF_DEF**);
extern int fileinit(int,unsigned,unsigned,long);
extern int fileopen(char*,enum F_TYPE,enum F_MODE);
extern int fileread(int,enum F_READ,long*);
extern int fileseek(int,long);
extern int filewrit(int,long*);
extern int file_err(int,int);
extern int fld_len(enum _JUST,int,int);
extern void goodbye(short);
extern byte grabchar(void);
extern int hashmake(char*,unsigned,unsigned,long,unsigned,unsigned);
#ifdef LATTICE
extern long hashread(int,byte*,int);
#else
extern long hashread(int,void*,int);
#endif
extern void helpmenu(int);
extern int helpscrn(byte*);
extern void idleloop(int);
extern int isendch(byte*,byte,enum ATTRIB);
extern void justify(enum _JUST,byte*,byte*,int,int);
extern int menu(char*,int,int,int);
extern int mk_wndw(int,int,int,int,byte*);
extern int mrtbrk(void);
extern long primenbr(long);
extern void prn_scrn(void);
extern void read_kb(void);
extern int rm_wndw(void);
extern void scrnsave(int);
extern void scrn_map(byte*,int,int);
extern void scroll(int,int);
extern void set_clr (int,enum ATTRIB);
extern void set_crsr (int,int);
extern int top_menu(char*,int,int);
extern void top_spot(int);
extern int validate(byte*,enum _JUST,int,int);
extern int v_bool(char);
extern void warble(int);
#ifdef _CDECL
#define QUICKC
#endif
#ifdef _Cdecl
#define TURBOC
#endif
/* end of header file */